1. Field of the Invention
The present invention relates to mixing digital audio using a plurality of mixing buses, each of which receives at least one input digital audio signal via a respective input for mixing into one output digital audio signal.
2. Description of the Related Art
Audio mixing consoles, often used in music production, live events and broadcasting, are tending to make more use of digital signal processing in place of analog processing. This may be achieved using specialized digital signal processors and application-specific integrated circuits, or alternatively may be achieved by using general purpose x86 central processing units (it will be appreciated that use of the term “x86” herein concerns the Intel® microprocessor architecture in general and therefore encompasses the x86-64 extension thereto). The latter approach has been employed by the present applicant in recent mixing consoles to reduce complexity and cost.
Whilst the use of x86 has been successful, in particular due to the introduction of CPUs with between six and twelve cores to allow a high degree of parallelism, a problem is encountered with the speed of access to last level cache in a CPU. One application in which this upper bound on access speed manifests itself is in the relatively simple task of combining digital audio signals, each of which is possibly subject to a respective level of gain, into one output for further processing. In analog consoles this was achieved by using a bus having multiple inputs, which would each be supplied to a summing amplifier or similar. In a digital processing environment, the well-known multiply-accumulate operation is carried out.
In a mixing console with a large number of channels, a large number of buses may be required. Given a resulting large number of inputs, the required number of multiply and addition operations may soon become overwhelming for a CPU-based digital audio processing system due to limitations in how fast data can be brought in and out of last level cache by the memory controller in the CPU. Thus, even with additional processing capacity provided by more cores on the CPU die, there can become a point at which no more inputs can be summed.